"use client"; import { DepositsTypes } from "@/api/depositsApi"; import { getUserRechargeApi } from "@/api/user"; import Box from "@/components/Box"; import { useUserInfoStore } from "@/stores/useUserInfoStore"; import { neReg } from "@/utils"; import { Form, Input, Toast } from "antd-mobile"; import { FormInstance } from "antd-mobile/es/components/form"; import { useTranslations } from "next-intl"; import { FC, Fragment, useRef, useState } from "react"; import ButtonOwn from "@/components/ButtonOwn"; import "@/styles/deposit.scss"; import { Autoplay, Pagination } from "swiper/modules"; import { Swiper, SwiperSlide } from "swiper/react"; interface Props { deposits: DepositsTypes[]; } const DepositData: FC = (props) => { const { deposits } = props; const t = useTranslations(); const userInfo = useUserInfoStore((state) => state.userInfo); // 选中类型 const [activeType, setActiveType] = useState(deposits[0]); // 是否自定义充值 const [isCustomInput, setIsCustomInput] = useState(false); const formInstanceRef = useRef(null); let [amount, setAmount] = useState(undefined); const titleChangeHandler = (item: DepositsTypes, index: number) => { setAmount(undefined); setActiveType(item); formInstanceRef.current?.resetFields(); }; const isStrictMode = true; const onFinish = (values: any) => { const params = { ...values, channel_id: activeType.id, amount: +values.amount }; getUserRechargeApi(params) .then((res) => { formInstanceRef.current?.resetFields(); Toast.show({ icon: "success", content: t("code.200"), maskClickable: false }); setAmount(undefined); if (res.data.pay_url) { window.open(res.data.pay_url); } }) .catch((error) => { Toast.show({ content: t(`code${error.data.code}`), maskClickable: false }); }); }; const onValuesChange = (changeValues: any) => { if (changeValues.amount) { setAmount(changeValues.amount); } }; const amountChange = (value: number) => { formInstanceRef.current?.setFieldValue("amount", value); setAmount(value); }; const amountValidator = (rules: any, value: any) => { if (!value) return Promise.reject(new Error(t("form.amount"))); if (+value < activeType.min_amount) return Promise.reject( new Error(t("form.amountMinReg", { amount: activeType.min_amount })) ); if (+value > activeType.max_amount) return Promise.reject( new Error(t("form.amountMaxReg", { amount: activeType.max_amount })) ); return Promise.resolve(); }; const banners = [ { id: 61, sort: 0, show_platform: 1, action_type: 1, action_params: "", content: "http://192.168.0.237:9000/bcwin/86fa3351-2aef-4ede-ba70-cae365f03812.jpg", }, { id: 62, sort: 0, show_platform: 1, action_type: 1, action_params: "", content: "http://192.168.0.237:9000/bcwin/9809de49-966e-4dea-81c9-baa71347dc6c.jpg", }, ]; return ( <>
{banners.map((banner, index) => ( {"banner"} ))}

title

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab accusamus amet animi beatae blanditiis cumque dicta dolor eius est ex, facilis illo libero magnam placeat quibusdam similique ullam, vel veniam?

{deposits.map((item, index) => { return (

titleChangeHandler(item, index)} > {item.name}

); })}
{isStrictMode ? ( <> ) : null} {isCustomInput && ( )}
    {activeType.products.map((item, index) => (
  • amountChange(item.amount)} > {!!item.badge && }
    {/* */} R$ {item.amount}
    {t("DepositPage.Oferecer")} 100%
  • ))}
setIsCustomInput(true)} > {t("DepositPage.customButtonText")}
); }; export default DepositData;